<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    // 1
    // var name = "The Window";
    // var object = {
    //     name: "My Object",
    //     getNameFunc: function () {
    //         return function () {
    //             return this.name;
    //         };
    //     }
    // };
    // console.log(object.getNameFunc()());// The Window

    // 改造
    // var name = "The Window";
    // var object = {
    //     name: "My Object",
    //     getNameFunc: function () {
    //         return ()=> {
    //             return this.name;
    //         };
    //     }
    // };
    // console.log(object.getNameFunc()());

    // 2
    // var name2 = "The Window";
    // var object2 = {
    //     name2: "My Object",
    //     getNameFunc: function () {
    //         var that = this;
    //         return function () {
    //             return that.name2;
    //         };
    //     }
    // };
    // console.log(object2.getNameFunc()());// My Object

    // 3
    function fun(n, o) {
        console.log(o);
        return {
            fun: function (m) {
                return fun(m, n)
            }
        }
    }

    // var a = fun(0);// undefined
    // a.fun(1)
    // a.fun(2)
    // a.fun(3)
    // var b = fun(0).fun(1).fun(2).fun(3);// undefined 0 1 2

    var c = fun(0).fun(1);// undefined 0
    c.fun(2);// 1
    c.fun(3);// 1

</script>
</html>